-- 账号配置文件
-- 用于保存和加载用户的登录配置

local account_config = {}

-- 引入配置常量
local config = require('Config/config')

-- 配置文件路径（从config.lua获取）
local CONFIG_FILE = config.CONFIG_PATHS.ACCOUNT_CONFIG

-- 默认配置
local DEFAULT_CONFIG = {
    server_host = "156.239.252.33",
    server_port = 39003,  -- 修改为TCP端口
    last_username = "",
    auto_login = false
}

-- 加载配置
function account_config.load()
    local file = io.open(CONFIG_FILE, "r")
    
    if file then
        local content = file:read("*all")
        file:close()
        
        -- 暂时使用简单的字符串解析，避免JSON依赖
        local config = {}
        for line in content:gmatch("[^\r\n]+") do
            local key, value = line:match("^([^=]+)=(.+)$")
            if key and value then
                -- 使用gsub去除首尾空格，替代trim()方法
                config[key:gsub("^%s*(.-)%s*$", "%1")] = value:gsub("^%s*(.-)%s*$", "%1")
            end
        end
        
        if next(config) then
            print("[INFO] 账号配置加载成功")
            return config
        else
            print("[WARN] 账号配置文件格式错误，使用默认配置")
        end
    else
        print("[INFO] 账号配置文件不存在，使用默认配置")
    end
    
    return DEFAULT_CONFIG
end

-- 保存配置
function account_config.save(config_data)
    -- 确保目录存在
    local dir = config.CONFIG_PATHS.BASE_PATH:gsub("/$", "")  -- 移除末尾的斜杠
    os.execute("mkdir -p " .. dir)
    
    local file = io.open(CONFIG_FILE, "w")
    
    if file then
        -- 暂时使用简单的键值对格式，避免JSON依赖
        for key, value in pairs(config_data) do
            file:write(key .. "=" .. tostring(value) .. "\n")
        end
        file:close()
        print("[INFO] 账号配置保存成功")
        return true
    else
        print("[ERROR] 无法保存账号配置文件")
        return false
    end
end

-- 更新配置
function account_config.update(new_config)
    local current_config = account_config.load()
    
    -- 合并配置
    for key, value in pairs(new_config) do
        current_config[key] = value
    end
    
    return account_config.save(current_config)
end

-- 获取服务器配置
function account_config.get_server_config()
    local config = account_config.load()
    return config.server_host, config.server_port
end

-- 设置服务器配置
function account_config.set_server_config(host, port)
    return account_config.update({
        server_host = host,
        server_port = port
    })
end

-- 获取最后登录的用户名
function account_config.get_last_username()
    local config = account_config.load()
    return config.last_username
end

-- 设置最后登录的用户名
function account_config.set_last_username(username)
    return account_config.update({
        last_username = username
    })
end

-- 获取自动登录设置
function account_config.get_auto_login()
    local config = account_config.load()
    return config.auto_login
end

-- 设置自动登录
function account_config.set_auto_login(auto_login)
    return account_config.update({
        auto_login = auto_login
    })
end

return account_config 